有哪些經典系統架構設計模式可以參考?
由於前人已經針對常見議題有了許多經典的解決方案。
因此在設計架構時,通常會希望參考經典的設計模式。
常見的架構模式包含:伸縮、快取、微服務、事件驅動、分層負責、業務模組化
當伺服器有較高的系統負載需求時(例如:CPU, 記憶體, 硬碟空間),如果是實體機器,直接換上更高的記憶體或硬碟空間。如果是虛擬機器,則動態調整分配給VM更多的系統資源。
水平伸縮是一種系統資源管理策略,當系統的資源需求動態上升或下降時,通過增加或減少伺服器或容器的數量,以有效地利用系統資源,提高系統效能。這可以通過根據流量預測進行自動排程,或根據系統負載量的偵測啟動自動伸縮。
快取是在取得資料後,暫時保存資料。在資料過期前,不再重複向後端取得資料。
微服務是一種軟體架構模式,藉由將大的系統拆成多個小的模組,以實現鬆耦合的系統架構。各微服務有獨立的業務邏輯,並連接到自有的資料庫。微服務之間通過HTTP等輕量化通信協定進行溝通。
事件驅動模式是一種以註冊事件並指定事件發生時預期執行的邏輯的程式設計模式。該模式中,事件處理邏輯與事件觸發點解耦合,不需要在程式碼中直接指定事件觸發的位置,而是通過事件註冊和觸發系統來動態連接事件觸發點和處理邏輯。
分層架構 (Layed Architecture) 分割不同關注點的程式到不同的位置。
對不同業務功能進行模組化,以降低系統的耦合度。
同樣達到低耦合目標,模組化是水平分割系統,分層架構是垂直分割系統。
業務模組化的優缺點,因此也與分層架構的優缺點類似。